من چند مدت پیش یک تابع تغییر تاریخ میلادی به تاریخ هجری
پیدا کردم(از
اینجا بگیریدش) و از اون هم استفاده می کردم تا اینکه از هر بار
صدا زدن این دوتا تابع خسته شدم!!! برای همین به فکر درست کردن یک
تابع افتادم که شبیه به تابع های PHP باشه(date و mktime).دقت کنید که
شما نیازی به اون فایل اول ندارید من خودم اون رو در فایلی که شما باید
دانلود کنید قرار دادم.(دریافت فایل zip, tar.gz)
این تابع
مثل تابع date توی PHP کار می کنه.اولین ورودی این تابع که از نوع رشته
است فرمت خروجی تاریخ رو نشون می ده(فرمت هاي خروجي تابع
jdate). دومین ورودی که از نوع عدد صحیح است.فاصله زمانی (بر
حسب ثانیه) از تاریخ 1970-1-1 (همون ۱۱/۱۰/۱۳۴۸ خودمون) است که با
استفاده از تابع mktime یا تابع خورشیدی شده آن jmaketime اون رو
مقدار دهی می کنیم(که این ورودی اختیاری است و در صورتی که خالی باشه
زمان اکنون رو در نظر می گیره).در صورتی که شما از حرفی استفاده کنید
که در این جدول نیامده خود حروف بدن تغییر از تابع بر می گردند. چند
مثال:
echo
jdate("Y/m/d"); result: ۱۳۸۲/۰۸/۰۵
---------------------- echo jdate("l j F
Y",mktime(0,0,0,6,30,1998)); result: سه شنبه ۹ تير ۱۳۷۷
---------------------- echo jdate("l j F
Y",jmaketime(0,0,0,6,30,1363)); result: جمعه ۳۰ شهريور ۱۳۶۳
توي خط 31 اين فايل يك سري تنظيمات است كه آلان در
موردشون توضيح مي دهم $transnumber اين
متغيير در صورتيكه مقدار ۱ داشته باشه اعداد رو به فارسي ترجمه مي
كنه $TZhours و $TZminute اين دوتا متغييرها براي اينه كه اگر شما از
يك سرور استفاده مي كنيد كه با ساعت گرينويچ ست است اون رو تبديل به
زمان محلي بكنه اگر نمي خواهيد اين كار رو بكنه مقدار دوتاشون رو ۰
كنيد (اولي تفاوت دقيقه دومي تفاوت ساعتي مثلا : $TZhours=3; $TZminute=30; براي ايران است)
این تابع مثل تابع mktime توی PHP
کار می کنه. ورودی های این تابع :
(سال,روز,ماه,ساعت,دقيقه,ثانيه) jmaketime. که سال و ماه و روز
آن را باید بر حسب تاریخ خورشیدی وارد کنید. یک نکته که در باره این
تابع بگم اینه که اگر شما مقدار یکی از ورودی ها رو بیشتر از مقدار
معمولش قرار دهید(مثلا برای ورودی ماه مقدار 15 را وارد کنید) خود تابع
به صورت هوشمند به نتیجه آخر تابع به اندازه 3 ماه اضافه می کنه.
چند تا مثال :
jmaketime(59,59,23,12,18,1380); result
: 1015831763
---------------------- jmaketime(80,110,54,15,60,1362);
result 453964854
در صورتی که شما برای پشتیبانی
از این تابع به ما لینک دهید ممنون می شویم
اگر شما سوالی داشتید می تونید با این ایمیل با من تماس
بگیرید : میلاد راستیان
miladmovie[at]yahoo[dot]com
و همچنین باید در اینجا از مجید و Persian Services تشکر
کنم که به من اجازه دادند تا فایل و صفحه رو در اینجا قرار بدهم.